package com.project.poetry.service.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.project.poetry.service.entity.dto.notes.AllusionInDTO;
import com.project.poetry.service.entity.dto.notes.AllusionOutDTO;
import com.project.poetry.service.entity.dto.notes.AllusionPoetryDTO;
import com.project.poetry.service.entity.dto.notes.NotesDTO;
import com.project.poetry.service.entity.po.notes.NotesPO;

import java.util.List;

/**
 * 注释业务层接口
 * @author mengxj
 */
public interface NotesService extends IService<NotesPO> {

    /**
     * 保存注释
     * @param notes 注释信息
     */
    void saveNotes(NotesDTO notes);

    /**
     * 根据作品查注释
     * @param poetryId 作品id
     * @return 注释集合
     */
    List<NotesDTO> notesList(Long poetryId);

    /**
     * 典故集合
     * @param allusion 查询条件
     * @return 典故集合
     */
    IPage<AllusionOutDTO> allusionList(AllusionInDTO allusion);

    /**
     * 查询带有典故的作品
     * @return 带有典故的作品
     */
    List<AllusionPoetryDTO> allusionPoetry();
}
